home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / convert / BaseImportDialog.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  10.3 KB  |  354 lines

  1. package com.extensibility.convert;
  2.  
  3. import com.extensibility.app.DialogFactory;
  4. import com.extensibility.app.UI;
  5. import com.extensibility.rock.FileLoader;
  6. import com.extensibility.rock.RDialog;
  7. import com.extensibility.rock.Screen;
  8. import com.extensibility.xa.XADialogFactory;
  9. import com.extensibility.xa.XAUI;
  10. import java.awt.Container;
  11. import java.awt.Dialog;
  12. import java.awt.Font;
  13. import java.awt.Frame;
  14. import java.awt.GridBagConstraints;
  15. import java.awt.GridBagLayout;
  16. import java.awt.Insets;
  17. import java.awt.Window;
  18. import java.io.File;
  19. import java.util.Enumeration;
  20. import java.util.Hashtable;
  21. import java.util.Vector;
  22. import javax.swing.BorderFactory;
  23. import javax.swing.Box;
  24. import javax.swing.JButton;
  25. import javax.swing.JComboBox;
  26. import javax.swing.JComponent;
  27. import javax.swing.JDialog;
  28. import javax.swing.JLabel;
  29. import javax.swing.JPanel;
  30. import javax.swing.JPasswordField;
  31. import javax.swing.JTextArea;
  32. import javax.swing.JTextField;
  33.  
  34. public class BaseImportDialog extends RDialog {
  35.    static boolean asElements = true;
  36.    static boolean recurse = false;
  37.    static boolean shortNames = true;
  38.    static boolean qualify = true;
  39.    JLabel art;
  40.    JLabel lblImporter;
  41.    JComboBox cbImporter;
  42.    JTextArea txtMessage;
  43.    JLabel lblSource;
  44.    JTextField fldSource;
  45.    JLabel lblName;
  46.    JTextField fldName;
  47.    JLabel lblPassword;
  48.    JPasswordField fldPassword;
  49.    JButton btnImport;
  50.    JButton btnCancel;
  51.    JButton btnChoose;
  52.    JButton btnOptions;
  53.    boolean canceled = true;
  54.    Hashtable importers = new Hashtable();
  55.    private static Vector userImporters;
  56.  
  57.    public BaseImportDialog(Frame var1) {
  58.       super(var1, true);
  59.       Enumeration var2 = getUserImporters().elements();
  60.  
  61.       while(var2.hasMoreElements()) {
  62.          MetaSpectIntf var3 = (MetaSpectIntf)var2.nextElement();
  63.          this.importers.put(var3.getPrompt(1), var3);
  64.       }
  65.  
  66.       this.prepare(true);
  67.    }
  68.  
  69.    public BaseImportDialog(Frame var1, MetaSpectIntf var2) {
  70.       super(var1, true);
  71.       this.importers.put(var2.getPrompt(1), var2);
  72.       this.prepare(false);
  73.    }
  74.  
  75.    public MetaSpectIntf getSelectedImporter() {
  76.       return this.getMSI((String)this.cbImporter.getSelectedItem());
  77.    }
  78.  
  79.    public static Vector getUserImporters() {
  80.       if (userImporters != null) {
  81.          return userImporters;
  82.       } else {
  83.          userImporters = new Vector();
  84.          addImporters(XAUI.getImportersDirectory());
  85.          return userImporters;
  86.       }
  87.    }
  88.  
  89.    private static void addImporters(File var0) {
  90.       if (var0.exists()) {
  91.          String[] var1 = var0.list();
  92.  
  93.          for(int var2 = 0; var2 < var1.length; ++var2) {
  94.             File var3 = new File(var0, var1[var2]);
  95.             if (var3.isDirectory()) {
  96.                addImporters(var3);
  97.             }
  98.  
  99.             FileLoader var4 = new FileLoader(var3);
  100.             int var5 = var1[var2].indexOf(".class");
  101.             if (var5 >= 0 && var1[var2].indexOf(36) < 0) {
  102.                String var6 = var1[var2].substring(0, var5);
  103.  
  104.                try {
  105.                   Class var7 = ((ClassLoader)var4).loadClass(var6);
  106.                   Object var8 = var7.newInstance();
  107.                   if (var8 instanceof MetaSpectIntf) {
  108.                      userImporters.addElement(var8);
  109.                   }
  110.                } catch (NoSuchMethodError var9) {
  111.                } catch (ClassNotFoundException var10) {
  112.                } catch (IllegalAccessException var11) {
  113.                } catch (InstantiationException var12) {
  114.                }
  115.             }
  116.          }
  117.  
  118.       }
  119.    }
  120.  
  121.    private final MetaSpectIntf getMSI(String var1) {
  122.       return (MetaSpectIntf)this.importers.get(var1);
  123.    }
  124.  
  125.    public boolean userCanceled() {
  126.       return this.canceled;
  127.    }
  128.  
  129.    protected String[] getImporters() {
  130.       String[] var1 = new String[this.importers.size()];
  131.       Enumeration var2 = this.importers.keys();
  132.  
  133.       for(int var3 = 0; var2.hasMoreElements(); var1[var3++] = (String)var2.nextElement()) {
  134.       }
  135.  
  136.       return var1;
  137.    }
  138.  
  139.    protected void setImporter(String var1) {
  140.       this.txtMessage.setText(this.getMSI(var1).getPrompt(2));
  141.       ((Dialog)this).setTitle(var1);
  142.       ((Window)this).pack();
  143.    }
  144.  
  145.    protected void prepare(boolean var1) {
  146.       Font var2 = (new JLabel()).getFont();
  147.       this.art = new JLabel(UI.getIcon("import.gif"));
  148.       this.art.setBorder(BorderFactory.createLoweredBevelBorder());
  149.       this.lblImporter = new JLabel(UI.getString("dialog.import.lbl.importer"));
  150.       this.cbImporter = new JComboBox(this.getImporters());
  151.       this.cbImporter.addActionListener(new 1(this));
  152.       this.txtMessage = UI.createStaticTextArea(UI.getString("dialog.import.txt.message"));
  153.       this.txtMessage.setSize(256, 100);
  154.       this.txtMessage.setBackground(((JDialog)this).getContentPane().getBackground());
  155.       this.txtMessage.setLineWrap(true);
  156.       this.txtMessage.setWrapStyleWord(true);
  157.       this.txtMessage.setFont(var2);
  158.       this.txtMessage.setMargin(new Insets(4, 4, 4, 4));
  159.       this.txtMessage.setEditable(false);
  160.       this.lblSource = new JLabel(UI.getString("dialog.import.lbl.source"));
  161.       this.fldSource = UI.createTextField();
  162.       this.lblName = new JLabel(UI.getString("dialog.import.lbl.name"));
  163.       this.fldName = UI.createTextField();
  164.       this.lblPassword = new JLabel(UI.getString("dialog.import.lbl.password"));
  165.       this.fldPassword = UI.createPwdField();
  166.       this.btnImport = new JButton(UI.getString("dialog.import"));
  167.       this.btnImport.addActionListener(new 2(this));
  168.       this.btnImport.setMnemonic(UI.getMnemonic("dialog.import"));
  169.       this.btnCancel = new JButton(UI.getString("dialog.cancel"));
  170.       this.btnCancel.addActionListener(new 3(this));
  171.       this.btnCancel.setMnemonic(UI.getMnemonic("dialog.cancel"));
  172.       this.btnChoose = new JButton(UI.getString("dialog.browse"));
  173.       Font var3 = this.btnChoose.getFont();
  174.       this.btnChoose.setFont(new Font(var3.getName(), var3.getStyle(), 10));
  175.       this.btnChoose.addActionListener(new 4(this));
  176.       this.btnChoose.setMnemonic(UI.getMnemonic("dialog.browse"));
  177.       this.btnOptions = new JButton(UI.getString("dialog.options"));
  178.       this.btnOptions.addActionListener(new 5(this));
  179.       this.btnOptions.setMnemonic(UI.getMnemonic("dialog.options"));
  180.       ((JDialog)this).getContentPane().setLayout(new GridBagLayout());
  181.       GridBagConstraints var4 = new GridBagConstraints();
  182.       var4.insets = new Insets(24, 24, 8, 0);
  183.       var4.gridx = 0;
  184.       var4.gridy = 0;
  185.       var4.gridheight = 2;
  186.       var4.anchor = 17;
  187.       ((JDialog)this).getContentPane().add(this.art, var4);
  188.       var4.gridheight = 1;
  189.       var4.insets.right = 16;
  190.       var4.insets.left = 16;
  191.       var4.gridx = 1;
  192.       var4.gridy = 0;
  193.       var4.fill = 2;
  194.       var4.anchor = 17;
  195.       var4.weightx = (double)1.0F;
  196.       if (var1) {
  197.          ((JDialog)this).getContentPane().add(this.cbImporter, var4);
  198.       }
  199.  
  200.       var4.gridx = 1;
  201.       var4.gridy = 1;
  202.       var4.fill = 1;
  203.       var4.anchor = 10;
  204.       var4.weighty = (double)1.0F;
  205.       JPanel var5 = new JPanel(new GridBagLayout());
  206.       ((JComponent)var5).setBorder(BorderFactory.createEtchedBorder());
  207.       ((JDialog)this).getContentPane().add(var5, var4);
  208.       var4.fill = 2;
  209.       var4.weighty = (double)0.0F;
  210.       var4.anchor = 13;
  211.       var4.gridx = 1;
  212.       var4.gridy = 2;
  213.       var4.insets.top = 8;
  214.       var4.insets.bottom = 16;
  215.       var4.fill = 0;
  216.       var4.anchor = 13;
  217.       Box var6 = Box.createHorizontalBox();
  218.       ((Container)var6).add(this.btnOptions);
  219.       ((Container)var6).add(Box.createHorizontalStrut(32));
  220.       ((Container)var6).add(this.btnCancel);
  221.       ((Container)var6).add(Box.createHorizontalStrut(12));
  222.       ((Container)var6).add(this.btnImport);
  223.       ((JDialog)this).getContentPane().add(var6, var4);
  224.       var4.insets = new Insets(8, 8, 0, 8);
  225.       var4.gridx = 0;
  226.       var4.gridy = 0;
  227.       var4.gridwidth = 2;
  228.       var4.fill = 1;
  229.       var4.weightx = (double)1.0F;
  230.       var4.weighty = (double)1.0F;
  231.       var4.insets.bottom = 8;
  232.       ((Container)var5).add(this.txtMessage, var4);
  233.       var4.insets.bottom = 0;
  234.       var4.weightx = (double)0.0F;
  235.       var4.weighty = (double)0.0F;
  236.       var4.gridwidth = 1;
  237.       var4.fill = 0;
  238.       var4.anchor = 13;
  239.       var4.gridx = 0;
  240.       var4.gridy = 1;
  241.       ((Container)var5).add(this.lblSource, var4);
  242.       var4.gridy = 3;
  243.       ((Container)var5).add(this.lblName, var4);
  244.       var4.gridy = 4;
  245.       ((Container)var5).add(this.lblPassword, var4);
  246.       var4.weightx = (double)1.0F;
  247.       var4.weighty = (double)0.0F;
  248.       var4.gridwidth = 1;
  249.       var4.fill = 2;
  250.       var4.anchor = 13;
  251.       var4.gridx = 1;
  252.       var4.gridy = 1;
  253.       ((Container)var5).add(this.fldSource, var4);
  254.       var4.gridy = 2;
  255.       var4.insets.top = 2;
  256.       var4.anchor = 13;
  257.       var4.fill = 0;
  258.       var4.anchor = 17;
  259.       var4.fill = 2;
  260.       var4.insets.top = 8;
  261.       var4.gridy = 3;
  262.       ((Container)var5).add(this.fldName, var4);
  263.       var4.insets.bottom = 8;
  264.       var4.gridy = 4;
  265.       ((Container)var5).add(this.fldPassword, var4);
  266.       ((Window)this).pack();
  267.       Screen.centerInScreen(this);
  268.    }
  269.  
  270.    protected void doChoose() {
  271.       File var1 = DialogFactory.askFile(this, UI.getString("dialog.import.browse.title"), (String[])null);
  272.       this.fldSource.setText(var1.getPath());
  273.    }
  274.  
  275.    protected void doImport() {
  276.       if (this.fldSource.getText().length() == 0) {
  277.          DialogFactory.stop(this, UI.getString("stop.source.required"));
  278.          this.fldSource.requestFocus();
  279.       } else {
  280.          this.canceled = false;
  281.          ((Window)this).dispose();
  282.       }
  283.    }
  284.  
  285.    protected void doOptions() {
  286.       boolean[] var1 = XADialogFactory.askImportOptions(this, asElements, recurse, qualify, shortNames);
  287.       if (var1 != null) {
  288.          asElements = var1[0];
  289.          recurse = var1[1];
  290.          qualify = var1[2];
  291.          shortNames = var1[3];
  292.       }
  293.    }
  294.  
  295.    public boolean getAsElements() {
  296.       return asElements;
  297.    }
  298.  
  299.    public void setAsElements(boolean var1) {
  300.       asElements = var1;
  301.    }
  302.  
  303.    public boolean getRecurse() {
  304.       return recurse;
  305.    }
  306.  
  307.    public void setRecurse(boolean var1) {
  308.       recurse = var1;
  309.    }
  310.  
  311.    public boolean getShortNames() {
  312.       return shortNames;
  313.    }
  314.  
  315.    public void setShortNames(boolean var1) {
  316.       shortNames = var1;
  317.    }
  318.  
  319.    public boolean getQualifyNames() {
  320.       return qualify;
  321.    }
  322.  
  323.    public void setQualifyNames(boolean var1) {
  324.       qualify = var1;
  325.    }
  326.  
  327.    protected void doCancel() {
  328.       ((Window)this).dispose();
  329.    }
  330.  
  331.    public void addNotify() {
  332.       super.addNotify();
  333.       this.setImporter((String)this.cbImporter.getSelectedItem());
  334.       this.fldSource.requestFocus();
  335.       ((RDialog)this).installEscape(this.btnCancel);
  336.       ((RDialog)this).installDefault(this.btnImport);
  337.       ((RDialog)this).installDefault(this.fldSource);
  338.       ((RDialog)this).installDefault(this.fldName);
  339.       ((RDialog)this).installDefault(this.fldPassword);
  340.    }
  341.  
  342.    public String getSource() {
  343.       return this.fldSource.getText();
  344.    }
  345.  
  346.    public String getUser() {
  347.       return this.fldName.getText();
  348.    }
  349.  
  350.    public String getPassword() {
  351.       return new String(this.fldPassword.getPassword());
  352.    }
  353. }
  354.